package simpletestbed;


import java.util.ArrayList;
import java.util.List;

public abstract class TestBed {
	
	protected List<TestCase> testCases = new ArrayList<TestCase>();
		
	protected long threadTimeOut = 0; // No time out
	
	protected boolean checkMemUsage = false;
	
	public TestBed() {
		
	}
	
	public void addTestCase(TestCase testcase) {
		this.testCases.add(testcase);
	}
	
	public TestCase getTestCase(int index) {
		return this.testCases.get(index);
	}
	
	
	public void setThreadTimeOut(long timeout) {
		this.threadTimeOut = timeout;
	}
	
	public boolean isCheckMemUsage() {
		return checkMemUsage;
	}

	public void setCheckMemUsage(boolean checkMemUsage) {
		this.checkMemUsage = checkMemUsage;
	}
	
		
	abstract public TestResult[] execute();
	
	abstract public double[] getRuntimes();
	
	abstract public double[] getMaxMemUsages();
}
